import { http } from "@/utils/http";

// 会员数据类型定义（根据API文档1.1会员列表）
export interface Member {
  m_id: string; // 会员id
  m_type: string; // 会员类型
  m_name: string; // 姓名
  m_mobile: string; // 手机号码
  m_sex: string; // 性别（0未知，1男，2女）
  m_gold: string; // 会员金币
  m_lasttime: string; // 最后登录时间（时间戳）
  m_ctime: string; // 创建时间（时间戳）
  m_notes: string; // 备注
  sex: string; // 性别中文
  lastdate: string; // 最后登录日期
  mobile_val: string; // 手机号码展示值
}

// 搜索参数类型（根据API文档）
export interface MemberSearchParams {
  num?: string; // 每页数据条数 默认10,范围1-100
  page?: string; // 获取数据的页数 默认 1
  keys?: string; // 姓名、手机号、手机号后4位
}

// API返回结果类型（根据API文档）
export interface ApiResult<T = any> {
  code: number; // 状态码：1 成功
  msg: string; // 描述
  data: T; // 数据
}

// 会员列表返回数据类型
export interface MemberListData {
  pages: number; // 总页数
  total: number; // 总条数
  list: Member[]; // 会员列表
}

// 编辑会员参数类型（根据API文档1.2编辑会员）
export interface EditMemberParams {
  id: string; // 会员id
  name: string; // 姓名
  sex?: string; // 性别：1 男，2 女，0 未知
  mobile: string; // 电话
  note?: string; // 备注
  mobile_val: string; // 手机号码展示值
}

// 添加会员参数类型（根据API文档1.3添加会员）
export interface AddMemberParams {
  name: string; // 姓名
  sex?: string; // 性别：1 男，2 女，0 未知
  mobile: string; // 电话
  note?: string; // 备注
}

// 金币操作参数类型（根据API文档1.5金币管理）
export interface GoldActionParams {
  mid: string; // 会员id
  gold: string; // 金币增减值（可正可负）
  remark: string; // 备注
}

// 金币日志项类型（根据金币日志API）
export interface GoldLogItem {
  g_id: string; // 日志id
  g_mid: string; // 会员id
  g_aid: string; // 管理员id
  g_val: string; // 金币变化值
  g_type: string; // 金币类型
  g_remark: string; // 备注
  g_ctime: string; // 创建时间戳
  g_timestamp: string; // 格式化时间
  aname: string; // 管理员姓名
  cdate: string; // 创建日期
  type: string; // 类型中文
}

// 金币日志搜索参数类型
export interface GoldLogParams {
  num?: string; // 每页数据条数 默认10,范围1-100
  page?: string; // 获取数据的页数 默认 1
  mid?: string; // 会员id
  remark?: string; // 日志备注
}

// 金币日志返回数据类型
export interface GoldLogData {
  pages: number; // 总页数
  list: GoldLogItem[]; // 金币日志列表
}

/** 获取会员列表（根据API文档1.1会员列表） */
export const getMemberList = (params: MemberSearchParams) => {
  return http.request<ApiResult<MemberListData>>(
    "post",
    "/admin/member.php?act=list",
    {
      data: params
    }
  );
};

/** 编辑会员（根据API文档1.2编辑会员） */
export const editMember = (params: EditMemberParams) => {
  return http.request<ApiResult<string>>("post", "/admin/member.php?act=edit", {
    data: params
  });
};

/** 添加会员（根据API文档1.3添加会员） */
export const addMember = (params: AddMemberParams) => {
  return http.request<ApiResult<string>>("post", "/admin/member.php?act=add", {
    data: params
  });
};

/** 删除会员（根据API文档1.4删除会员） */
export const deleteMember = (id: string) => {
  return http.request<ApiResult<string>>("post", "/admin/member.php?act=del", {
    data: { id }
  });
};

/** 金币管理（根据API文档1.5金币管理） */
export const goldAction = (params: GoldActionParams) => {
  return http.request<ApiResult<string>>(
    "post",
    "/admin/member.php?act=gold_action",
    {
      data: params
    }
  );
};

/** 获取金币日志（根据金币日志API） */
export const getGoldLog = (params: GoldLogParams) => {
  return http.request<ApiResult<GoldLogData>>(
    "post",
    "/admin/member.php?act=gold_log",
    {
      data: params
    }
  );
};
